草庐IT

php - preg_replace 匹配但不替换

全部标签

Ruby 相当于 "grep -C 5"以获取匹配项周围的行的上下文?

我搜索了一下,但我一定是使用了错误的术语-ruby​​是否有办法grep查找字符串/正则表达式并返回周围的5行(上方和下方)?我知道我可以调用"grep-C5..."或什至编写我自己的方法,但这似乎是ruby​​应该有的东西,我只是没有使用正确的搜索词。 最佳答案 您可以使用正则表达式来完成。这是我们要搜索的字符串:s=%{ThefirstlineThesecondlineThethirdlineThefourthlineThefifthlineThesixthlineTheseventhlineTheeightlineThenin

ruby-on-rails - Rails和回形针,删除记录但不删除附件

我正在使用rails和回形针以通常的方式保存图像。当带有附件的记录被销毁时,附件也会从文件系统中删除。99%的时间这是正确的操作,但是有一种情况我需要附件保留在系统中,即使数据库记录已删除。我想知道是否有人知道该怎么做。我尝试在销毁记录之前通过update_attribute将附件字段设置为nil,但update_attribute也会删除文件。一种方法是忽略所有回调,但是需要一些其他回调,这似乎有点太多了。任何人都知道任何更好的方法...干杯。 最佳答案 您可能想看看Attachment#assign(当您执行object.att

ruby - 用字符串中的撇号替换单引号 (Ruby)

我的用户有时输入的不是撇号('),而是看起来像撇号(‘)的符号,这会导致数据库出现一些问题。我试着用gsub替换它们,如下所示:result.gsub(/\‘/,"'")result.gsub(/‘/,"'")这些选项都不起作用-出现错误:syntaxerror,unexpected$end,expecting')'returnresult.gsub(/\‘/,"'").gsub("’","'")^它们是Ruby保留的吗?我该如何替换它们? 最佳答案 如果您的文本编辑器不直接支持像‘这样的UTF-8字符,您可以通过这种方式转义它们:

ruby - pg: exec_params 不替换参数?

第一次使用pggem访问postgres数据库。我已成功连接并可以使用#exec运行查询,但现在使用#exec_params构建一个简单的查询似乎没有替换参数。即:get'/databases/:db/tables/:table'do|db_name,table_name|conn=connect(db_name)query_result=conn.exec_params("SELECT*FROM$1;",[table_name])end结果为#这似乎是一个非常简单的示例-我是否从根本上误解了如何使用此方法? 最佳答案 您可以将占位

Ruby 正则表达式 - 用文本中间的空格替换点

我有一个很长的文本,我想用空格替换其中的点,但只能在文本的中间。例如:Domain:...................google.com我需要这样:Domain:google.com我发现了这个用单个空格替换点的正则表达式:str.gsub!(/(?但这还不够,因为它会产生:Domain:google.com我需要保留与点一样多的空格。你会如何解决? 最佳答案 你快到了,你的正则表达式没问题,只需使用String#gsub的block版本计算替换匹配的长度:▶str='Domain:...................goo

ruby - 使用 gsub 时如何限制替换次数?

在Ruby中如何限制String#gsub的替换次数?在PHP中,这可以通过preg_replace轻松完成,它接受一个参数来限制替换,但我不知道如何在Ruby中做到这一点。 最佳答案 您可以在gsub循环中创建一个计数器并递减它。str='aaaaaaaaaa'count=5pstr.gsub(/a/){ifcount.zero?then$&elsecount-=1;'x'end}#=>"xxxxxaaaaa" 关于ruby-使用gsub时如何限制替换次数?,我们在StackOverf

ruby - 父类(super class)不匹配、结构、重新加载和 Spork

假设有下面这个类#derp.rbclassDerp当我加载“./derp.rb”两次时,程序因TypeError:superclassmismatchforclassDerp而失败。好的,这可以通过require来管理。但是我如何为每次使用Spork的测试运行重新加载这些类?require显然不会工作,因为它会缓存加载的文件。 最佳答案 Struct.new正在为您的每次加载创建新类。irb(main):001:0>classTest1classTest1'您可以将返回的Struct.newclass保存到一个变量中,然后您可以使用

ruby-on-rails - rails : replacing try with the Null Object Pattern

在我的大多数应用程序中,我都有一个current_user方法。为了避免像current_user.name这样的情况出现异常,其中current_user是nil,rails提供了try方法。这个问题是我需要记住在current_user可能是nil的地方使用try。我想使用NullObject模式来消除这种额外的开销。classNullUserdefmethod_missing(method_name,*args)nilendenddefcurrent_userreturnNullUser.newunlessUserSession.find@current_user||=UserS

ruby - ruby 中可以匹配任何表情符号的正则表达式示例是什么?

我需要使用正则表达式在Ruby中匹配字符串中的表情符号。我已经尝试了几个unicode序列,但似乎没有一个能完全胜任。我也不确定表情符号的开始和结束范围在哪里。 最佳答案 这个正则表达式匹配所有845个表情符号,取自Emojiunicodecharactersforuseontheweb:[\u{203C}\u{2049}\u{20E3}\u{2122}\u{2139}\u{2194}-\u{2199}\u{21A9}-\u{21AA}\u{231A}-\u{231B}\u{23E9}-\u{23EC}\u{23F0}\u{23F3

ruby - 您是否已将 makefile 替换为 ruby​​ 脚本?

我很欣赏makefile和make的所有荣耀,但我想知道是否有更直观的方法来维护我的c/c++构建。有没有人尝试过用ruby​​脚本替换他们的makefile以允许在不牺牲可读性的情况下进行复杂和自适应的构建?是否有使这更容易的gem? 最佳答案 看看Rake,用Ruby编写的make替代品。它基本上是一种小型领域特定语言,适用于典型的make类任务,可以在Rakefile中编写普通的ruby​​代码。 关于ruby-您是否已将makefile替换为ruby​​脚本?,我们在StackO